package com.osdp.sc.dto;

import com.osdp.common.constant.CommonConstant;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.util.List;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
public class PermissionDTO {

    public static final String FRONT_PAGE ="首页";//

    private String id;
    /**父id*/
    private String parentId;

    /** 菜单名称 */
    private String permsName;
    /**
     * 菜单权限编码，例如：“sys:schedule:list,sys:schedule:info”,多个逗号隔开
     */
    private String permsCode;
    /**
     * 菜单类型
     * 0：一级菜单、1：菜单，2：按钮
     */
    private String permsType;
    /** 菜单图标 */
    private String icon;
    /**  组件*/
    private String component;
    /** 组件名字 */
    private String componentName;
    /** 路径 */
    private String url;
    /**是否叶子节点: 1:是  0:不是 */
    private boolean isLeaf;
    /**
     * 租户ID
     * 可以理解成初始租户ID，默认租户ID
     */
    private String tenantId;
    /** 按钮请求类型：GET, POST, PUT, PATCH, DELETE*/
    @ApiModelProperty("请求类型（或方法）")
    private String requestType;
    /**
     * 是否检验请求类型 0:不检验,1:校验
     */
    @ApiModelProperty("是否检查请求类型（或方法）")
    private String isCheckRequestType;

    @ApiModelProperty("菜单排序")
    private Integer sortNo;

    @ApiModelProperty("子节点集合")
    private List<PermissionDTO> children;

    public PermissionDTO(){

    }

    public PermissionDTO(boolean index){
        setId("9502685863ab87f0ad1134142788a385");
        this.permsName="首页";
        this.component="dashboard/Analysis";
        this.url="/dashboard/analysis";
        this.icon="home";
        this.sortNo=0;
//        this.ruleFlag=0;
//        setDelFlag("0");
//        this.alwaysShow=false;
//        this.route=true;
        this.isLeaf=true;
//        this.hidden=false;
    }

    /**
     * 是否需要检测
     * @return
     */
    public boolean checked(){
        return CommonConstant.FLAG_ONE_1 == this.isCheckRequestType;
    }

}
